# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod4

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8

# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8

# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

## If you try to go to the same workspace you are on, jump to last workspace
workspace_auto_back_and_forth yes


### Variables ### {{{
	set $Locker i3lock e -c 2E3436 && sleep 1

	### Workspace Names ### {{{
	set $ws1 1:
	set $ws2 2:
	set $ws3 3:
	set $ws4 4:
	set $ws5 5
	set $ws6 6
	set $ws7 7:
	set $ws8 8
	set $ws9 9
	set $ws10 10
	### End Workspace Names ### }}}
### End Variables ### }}}

### Bindings ### {{{
	### Workspace Bindings ### {{{
		### Last Workspace ### {{{
		## Move to last workspace
		bindsym $mod+Tab workspace back_and_forth
		## Send container to last workspace
		bindsym $mod+Shift+Tab move container to workspace back_and_forth
		### End Last Workspace ### }}}

		### Switch Workspace ### {{{
		# switch to workspace
		bindsym $mod+1 workspace $ws1
		bindsym $mod+2 workspace $ws2
		bindsym $mod+3 workspace $ws3
		bindsym $mod+4 workspace $ws4
		bindsym $mod+5 workspace $ws5
		bindsym $mod+6 workspace $ws6
		bindsym $mod+7 workspace $ws7
		bindsym $mod+8 workspace $ws8
		bindsym $mod+9 workspace $ws9
		bindsym $mod+0 workspace $ws10
		### End Switch Workspace ### }}}

		### Send Workspace ### {{{
		# move focused container to workspace
		bindsym $mod+Shift+1 move container to workspace $ws1
		bindsym $mod+Shift+2 move container to workspace $ws2
		bindsym $mod+Shift+3 move container to workspace $ws3
		bindsym $mod+Shift+4 move container to workspace $ws4
		bindsym $mod+Shift+5 move container to workspace $ws5
		bindsym $mod+Shift+6 move container to workspace $ws6
		bindsym $mod+Shift+7 move container to workspace $ws7
		bindsym $mod+Shift+8 move container to workspace $ws8
		bindsym $mod+Shift+9 move container to workspace $ws9
		bindsym $mod+Shift+0 move container to workspace $ws10
		### End Send Workspace ### }}}

		### Move Workspace Different Monitor ### {{{
		# Move the current workspace to the next output
		bindsym $mod+Mod1+Left move workspace to output Left
		bindsym $mod+Mod1+Down move workspace to output Down
		bindsym $mod+Mod1+Up move workspace to output Up
		bindsym $mod+Mod1+Right move workspace to output right
		### End Move Workspace Different Monitor ### }}}
	### End Workspace Bindings ### }}}

	### Window Bindings ### {{{
		# kill focused window
		bindsym $mod+Shift+q kill

		### Sticky Windows, good for picture in picture
		bindsym $mod+Shift+s sticky toggle

		### Split Orientation ### {{{
		# split in horizontal orientation
		bindsym $mod+h split h

		# split in vertical orientation
		bindsym $mod+v split v
		### End Split Orientation ### }}}
	### End Window Bindings ### }}}

	### Focus Bindings ### {{{
		# enter fullscreen mode for the focused container
		bindsym $mod+f fullscreen toggle

		### Tile / Float ### {{{
		# toggle tiling / floating
		bindsym $mod+Shift+space floating toggle

		# change focus between tiling / floating windows
		bindsym $mod+space focus mode_toggle
		### End Tile / Float ### }}}

		### Change Focus ### {{{
		# change focus
		bindsym $mod+j focus left
		bindsym $mod+k focus down
		bindsym $mod+l focus up
		bindsym $mod+semicolon focus right

		# alternatively, you can use the cursor keys:
		bindsym $mod+Left focus left
		bindsym $mod+Down focus down
		bindsym $mod+Up focus up
		bindsym $mod+Right focus right
		### End Change Focus ### }}}

		### Move Focused Window ### {{{
		# move focused window
		bindsym $mod+Shift+j move left
		bindsym $mod+Shift+k move down
		bindsym $mod+Shift+l move up
		bindsym $mod+Shift+semicolon move right

		# alternatively, you can use the cursor keys:
		bindsym $mod+Shift+Left move left
		bindsym $mod+Shift+Down move down
		bindsym $mod+Shift+Up move up
		bindsym $mod+Shift+Right move right
		### End Move Focused Window ### }}}

		### Focus Urgent Workspace {{{
		bindsym $mod+x [urgent=latest] focus
		### End Focus Urgent Workspace ###}}}
	### End Focus Bindings ### }}}

	### Container Bindings ### {{{
		### Change Container Layout ### {{{
		# change container layout (stacked, tabbed, toggle split)
		bindsym $mod+s layout stacking
		bindsym $mod+w layout tabbed
		bindsym $mod+e layout toggle split
		### End Change Container Layout ### }}}

		### Parent / Child Container ### {{{
		# focus the parent container
		bindsym $mod+a focus parent

		# focus the child container
		bindsym $mod+d focus child
		### End Parent / Child Container ### }}}
	### End Container Bindings ### }}}

	### i3 Modes ### {{{
		### Handy Menu Mode ### {{{
		set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
		mode "$mode_system" {
			bindsym l exec --no-startup-id $Locker, mode "default"
			bindsym e exec --no-startup-id i3-msg exit, mode "default"
			bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
			bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
			bindsym r exec --no-startup-id systemctl reboot, mode "default"
			bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"  

			# back to normal: Enter or Escape
			bindsym Return mode "default"
			bindsym Escape mode "default"
		}

		bindsym $mod+Pause mode "$mode_system"
		### End Handy Menu Mode ### }}}

		### App Focus Mode ### {{{
		mode "App Focus" {
			# hardcoded focus keybindings
			bindsym b [class="(?i)uzbl"] focus, mode "default"
			bindsym w [class="(?i)terminal" title="weechat"] focus, mode "default"
			bindsym m [class="(?i)icedove"] focus, mode "default"
			bindsym f [class="(?i)spacefm"] focus, mode "default"
			bindsym z [class="(?i)zathura"] focus, mode "default"

			# back to normal: Enter or Escape
			bindsym Return mode "default"
			bindsym Escape mode "default"
		}
		bindsym $Mod+g mode "App Focus"
		### End App Focus Mode ### }}}

		### Resize Window ### {{{
		# resize window (you can also use the mouse for that)
		mode "resize" {
				# These bindings trigger as soon as you enter the resize mode

				# Pressing left will shrink the window’s width.
				# Pressing right will grow the window’s width.
				# Pressing up will shrink the window’s height.
				# Pressing down will grow the window’s height.
				bindsym j resize shrink width 10 px or 10 ppt
				bindsym k resize grow height 10 px or 10 ppt
				bindsym l resize shrink height 10 px or 10 ppt
				bindsym semicolon resize grow width 10 px or 10 ppt

				# same bindings, but for the arrow keys
				bindsym Left resize shrink width 10 px or 10 ppt
				bindsym Down resize grow height 10 px or 10 ppt
				bindsym Up resize shrink height 10 px or 10 ppt
				bindsym Right resize grow width 10 px or 10 ppt

				# back to normal: Enter or Escape
				bindsym Return mode "default"
				bindsym Escape mode "default"
		}

		bindsym $mod+r mode "resize"
		### End Resize ### }}}

		## xrandr mode?

		##control-pianobar mode?

	### End i3 Modes ### }}}

	### Misc Bindings ### {{{
		### i3 Keys ### {{{
		# reload the configuration file
		bindsym $mod+Shift+c reload
		# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
		bindsym $mod+Shift+r restart
		# exit i3 (logs you out of your X session)
		bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
		### End i3 Keys ### }}}

		### Launch Term ### {{{
		# start a terminal
		bindsym $mod+Return exec i3-sensible-terminal
		### End Launch Term ### }}}

		### Screen Shots ### {{{
		bindsym $mod+Print exec $HOME/bin/screenshot.sh full
		## Note, you need to click on the window, after key combo, to capture it.
		bindsym $mod+Shift+Print exec $HOME/bin/screenshot.sh window
		### End Screen Shots ### }}}

		### Rofi Bindings ### {{{
		## Use rofi, it's better
		# start dmenu (a program launcher)
		#bindsym $mod+d exec dmenu_run
		bindsym $mod+p exec rofi -sidebar-mode -show run -font 'Pragmata Pro 10' -fg \#505050 -bg \#000000 -bgalt \#101010 -hlfg \#008080 -hlbg \#454A4F -bc \#008080 -bw 1 -location 2 -width 100 -padding 0 -lines 10 -no-disable-history -no-levenshtein-sort

		### rofi-pass binding
		bindsym $mod+Shift+p exec rofi-pass
		### End Rofi Bindings ### }}}

		### Handy Menu GUI ### {{{
		bindsym $mod+Shift+Pause exec "i3-nagbar -t warning -m 'Options:' -b 'lock' 'exec $Locker' -b 'logout' 'exec --no-startup-id i3-msg exit' -b 'suspend' 'exec --no-startup-id $Locker && systemctl suspend' -b 'hibernate' 'exec iino-startup-id $Locker && systemctl hibernate' -b 'reboot' 'exec --no-startup-id systemctl reboot' -b 'shutdown' 'exec --no-startup-id systemctl poweroff -i'"
		### End Handy Menu GUI ### }}}

		### control-pianobar Commands ### {{{
		bindsym $mod+F12 exec ~/.config/pianobar/control-pianobar.sh play
		bindsym $mod+F11 exec ~/.config/pianobar/control-pianobar.sh quit
		bindsym $mod+F9 exec ~/.config/pianobar/control-pianobar.sh history
		bindsym $mod+F1 exec ~/.config/pianobar/control-pianobar.sh next
		bindsym $mod+F2 exec ~/.config/pianobar/control-pianobar.sh tired
		bindsym $mod+F7 exec ~/.config/pianobar/control-pianobar.sh switchstation
		#bindsym $mod+F## exec ~/.config/pianobar/control-pianobar.sh previousstation
		#bindsym $mod+F## exec ~/.config/pianobar/control-pianobar.sh nextstation
		bindsym $mod+F3 exec ~/.config/pianobar/control-pianobar.sh love
		bindsym $mod+F5 exec ~/.config/pianobar/control-pianobar.sh ban
		#bindsym $mod+F## exec ~/.config/pianobar/control-pianobar.sh explain
		bindsym $mod+F8 exec ~/.config/pianobar/control-pianobar.sh current
		### End control-pianobar Commandss ### }}}

		### Pulse Audio Controls ### {{{
		bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 3%+ #increase sound volume
		bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 3%- #decrease sound volume
		bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
		### End Pulse Audio ### }}}

		### Toggle redshift ### {{{
		bindsym $mod+slash exec --no-startup-id pkill -USR1 redshift
		### End Toggle redshift ### }}}
	### End Misc Bindings ### }}}

	### Mouse Bindings ### {{{
		# Use Mouse+$mod to drag floating windows to their wanted position
		floating_modifier $mod
	### End Mouse Bindings ### }}}

	### Scratch Pad ### {{{
	# Make the currently focused window a scratchpad
	bindsym $mod+Shift+minus move scratchpad

	# Show the first scratchpad window
	bindsym $mod+minus scratchpad show
	### End Scratch Pad ### }}}
### End Bindings ### }}}

### Window Treatments ### {{{
	### Program Floating ### {{{
	for_window [class="mpv|feh"] floating enable
	for_window [class="mpv|URxvt|chromium|terminator"] border 1pixel
	### End Program Floating ### }}}

	### uzbl Tabs ### {{{
	for_window [class="Uzbl-core"] focus child, layout tabbed, focus
	### End uzbl Tabs ### }}}

	### Deal with pop ups ### {{{
	for_window [window_role="pop-up"] floating enable
	for_window [window_role="task_dialog"] floating enable
	for_window [title="Preferences$"] floating enable
	### End Popups ### }}}

	### Scratchpad ### {{{
	for_window [title="nvPY"] move scratchpad
	### End Scratchpad ### }}}
### End Window Treatments ### }}}

### Assign Application Workspace ### {{{
assign [class="(?i)chromium"]	$ws3
assign [class="(?i)icedove"]	$ws4
assign [class="(?i)spacefm"]	$ws7

### End Assign Application Workspace ### }}}

### Bar Settings ### {{{
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
		#status_command i3status
		#tray_output primary
#}

bar {
	i3bar_command ~/.i3/lemonbar/i3_lemonbar.sh
	binding_mode_indicator yes
	## This isn't working? primary display set to lvms1.
	#tray_output primary
}
### End Bar Settings ### }}}

### Exec Programs ### {{{
exec --no-startup-id /home/demure/.fehbg
exec --no-startup-id clipit
exec --no-startup-id xss-lock -- i3lock -e -c 2E3436
exec --no-startup-id redshift
exec --no-startup-id dropbox start
exec nvpy
### End Exec Programs ### }}}
